package com.tripshare.sdk.weixin.api;

import com.tripshare.sdk.weixin.format.WeixinBaseReplyMsg;
import com.tripshare.sdk.weixin.format.receive.*;

/**
 * SDK的标准协议
 */
public interface IMsgProcessor {

    /**
     * 文本消息
     *
     * 用户在公众里输入的文字信息
     *
     * @param textMsg 收到的消息内容
     * @return 要回复的消息内容
     */
    WeixinBaseReplyMsg processTextMsg(WeixinTextMsg textMsg);

    /**
     * 语音消息
     *
     * @param voiceMsg
     * @return
     */
    WeixinBaseReplyMsg processVoiceMsg(WeixinVoiceMsg voiceMsg);

    /**
     * 位置消息
     *
     * 用户点击公众号菜单 或者 输入位置
     *
     * @param locationMsg 收到的消息内容
     * @return 要回复的消息内容
     */
    WeixinBaseReplyMsg processLocationMsg(WeixinLocationMsg locationMsg);

    /**
     * 扫码消息
     *
     * @param scanCodeMsg 收到的消息内容
     * @return 要回复的消息内容
     */
    WeixinBaseReplyMsg processScanCodeMsg(WeixinScanCodeMsg scanCodeMsg);

    /**
     * 事件点击消息
     *
     * 用户点击公众号菜单产生的消息,event-click
     *
     * @param clickMsg 收到的消息内容
     * @return
     */
    WeixinBaseReplyMsg processClickMsg(WeixinClickMsg clickMsg);
}
